/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.marcelo.agro.core.api;

import java.util.List;
import org.marcelo.agro.entidades.*;

/**
 *
 * @author marcelo
 */
public interface ICampanhas extends IAccesoADatos<Campanas>{
    
    /**
     * Metodo para obtener todas las campa;as que estan activas
     * @return Una lista de Campanas que estan con el campo esta_activo >= 1
     */
    public List<Campanas> getCampanasActivas();
    
    /**
     * Metodo para obtener todas las campañas que estan desactivas
     * @return Una lista de Campanas que estan con el campo esta_activo = 0
     */
    public List<Campanas> getCampanasNoActivas();
    
    /**
     * Metodo para obtener todos los lotes asociados a una campanha en particular
     * @param campanha la campana en cuestion
     * @return una lista de lotes por campana
     */
    public List<LotesPorCampana> getLotesParaCampanha(Campanas campanha);
    
    /**
     * Metodo que retorna la lista de todos los lotes que existen en el sistema
     * @return una Lista de Lotes
     */
    public List<Lotes> getLotes();
    
    
    /**
     * Metodo para Borrar un LotesPorCampana
     * @param lpc
     * @throws Exception 
     */
    
    public void delete(LotesPorCampana lpc) throws Exception;
    
    /**
     * Metodo para Borrar una campania
     * @param campanas
     * @throws Exception 
     */
    public void delete(Campanas campanas) throws Exception;
    
    
    
}
